אחד הבעיות שיש לי ואני מניח שלעוד מתכנתים מוכשרים יותר זה הבעיה בלתכנן את האתר/מערכת.
יש סיכוי לקבל מדריך/ הסבר/ קובץ וורד המכיל פלטפורמה או כל פלטפורמה אפשרית לאיך מתכננים אתר מהצד של המתכנת?
שגיגלתי, מצאתי המון חברות של בניית אתרים שמסבירים איך הם מתכננים מהצד שמסתיר את מהלקוח את כל הפן התכנותי, וזה בעצם הפן שחסר לי.
אשמח מאוד אם תענו לי בצורה מקיפה שתוכל באמת לעזור לי כי אני אף פעם לא מצליח לסיים פרוייקט בגלל זה!
תודה מראש,
מתן.
8 תשובות
תקרא על Model View Controller, תלמד frameworks - איך הן עובדות ואיך עובדים איתן (Laravel, CodeIgniter, yii..)
אני יותר בכיוון של לבנות פרימוורק, ובכללי, זה לא עונה על מה ששאלתי. פרימוורק זה אולי חלק קטן בתכנון אתר.
כשאתה מתכוון לתכנן מערכת אתה מתכוון למשל איך לבנות משהו לתכנן כל חלק בבניה?
אני פשוט חושב לעצמי וכותב כמובן בשלבים כמו טקסט מפעיל הוראות לא מפורטות מאוד אבל לא קצרות מדי למשל ככה:
1.לצור טופס עם השדות:
..
2.לבנות דף שמקשרים אותו בAJAX.
זה רק דוגמא.
לתכנן מערכות מקטנות עד גדולות. וכן ויש דברים שאתה צודק בהם אבל זה לא הכל, צריך עוד מידע, כמו מחלקות שיבנו וכל הדברים האלה.
אם יש למישהו מדריכים באנגלית/עברית שישלח למה אני מתוסכל מהקטע הזה!
תנסה לתכנן את phpguide. אולי תשווה עם הקוד מקור אחרי זה.
אין פה קסמים. זה בא עם נסיון ובדרך כלל עד שלב מסוים הכל בנוי באותה צורה, כאשר הארכיטקטורה שתבחר תכתיב לך את המבנה. תעבור על פרוייקטים קיימים ותכתסכל על המבנה של התיקיות, של הקבצים ואתה תראה שהם כולם זהים.
רק לפני שאתה מתחיל לבנות פריימוורק משלך - קודם תעבוד עם פריימוורקים קיימים.
משום מה המשפט הזה נשמע פחות טריוויאלי מאשר מפשט אחר - דומה:
לפני שאתה מרכיב מכונית - תלמד לנהוג במכוניות אחרות.
---------------------
אני דווקא רואה איך פריימוורק מהווה חלק גדול מהאתר.
משמעוט של אתר זה לקבל נתונים מהמשתמש, לעשות איתם משהו, להחזיר נתונים למשתמש.
פריימוורק נותן לך את המבנה של איך "לקבל, להחזיר ולעבד". לך נשאר רק לכתוב קצת מהקוד של עיבוד הנתונים.
פעם אחת אתה כותב פונקציה לשמירת שאלה במסד, פעם אחת אתה כותב פונקציה לשליפת שאלה והתשובות שלה מהמסד.
מצד שאני כשאתה עובד בלי פריימוורק (שהתרגום לעברית אומר "מסגרת עבודה") אתה בהמת בבעיה, כי יש לך 537 קבצים שונים שלא מסודרים או קשורים אחד לשני בצורה כלשהי. משתמשים פונים אל כל אחד מאותם הקבצים, קבצים אחרים זרוקים בכל מיני מקומות. ואיך לארגן את זה כל זה באמת שאלה לא קלה ובדיוק שאלת אותה.
איך אפשר לקחת את כל מה שאמרת ועוד ולהכניס את הכל בקובץ WORD בשביל לייצר תוכנית עבודה לאתר/מערכת?
יש לך אולי דוגמא לתת לי לתכנון של אתר/מערכת? ממש לראות את הקובץ של התכנון ולא רק להסתכל בתקייה?
אפשר להכניס את זה לספר למשל.
שוב פעם, אני ממליץ לך לנסות לבנות אתר עם פריימוורק כלשהו. תשקיע את החודש הקרוב בללמוד לעבוד עם
laravel / symfony / yii ותחזור לשאלה הזאת בעוד חודש.
אחרי שתראה איך אנשים אחרים מתכננים את תהליך כתיבת הקוד שלהם יהיה לך יותר קל לכתוב בעצמך קובץ וורד כזה.
------
את תהליך פיתוח אתר אפשר לראות מכמה זוויות.
תכנון קוד (אילו רכיבים וחלקים יהיו באתר, אילו מחלקות, איך ידברו אחת עם השניה)
תהליך תכנות ( איך לכתוב קוד)
תהליך תכנון (תוכן, חלקים באתר, כתיבת מפרט,/אפיון - מה יהיה באתר)
התהליך פיתוח (מטודולוגיות, scrum, kanban, waterfall
תהליך עסקי (לעסק בניית אתרים, מאיך להשיג לקוחות לכמה ואיך לקיים איתו פגישות, שוטפויות אסטרטגיות וכו')
תהליך זרימה ( פגישת אפיון, כתיבת תיק אפיון, עיצוב גרפי, בניית ארכיטקטורה, פיתוח, כתיבת תסריטי בדיקות, בדיקות, סיום, או תהליך איטרטיבי)
---
אם אתה מדבר על הפאן התכנותי נטו (איך לקבל מסמך אפיון ולייצר מזה קוד שעונה לתנאים) - באתרים הכל מאוד פשוט.
כבר המציאו את הדרכים הנוחות לפתח אתר. יש כמה מבנים שאפשר להשתמש בהם, כמו mvc, mvvm, rmr וכל מיני נגזרות.
למפתח נשאר לקחת את האפיון, לתרגם אותו מאנגלית לקוד ולהכניס למבנה שתבחר.
איך לעשות את התרגום הזה - קשה לי להסביר. אולי אתה תוכל לעשות את זה, אחרי שתכיר את המבנה שתבחר (כאשר ל-PHP הכי אקטואלי הוא ה-MVC).
----
אם אתה עושה את זה מחוץ לתחום האתרים - הכל הופך לקצת יותר מעניין. שם אין דרך מקובלת מסוימת לעשות דברים וכל פרוייקט שונה במעוטו ומבנהו. כאן לתמונה נכנס תפקיד מיוחד שנקרא ארכיטקט, שהוא בדרך כלל בן אדם מאוד מנוסה שיודע איך ומה לבנות. אין לו רשימת קניות של דברים שצריך לעשות בשביל לקבל ארכיטקטורה טובה. יש לו נסיון ושכל ישר. אלה גלגל ההצלה היחידי שלו בתכנון מערכת (הרי שהם שונות אחת מהשניה כל פעם).
ושוב בחזרה לעולם הווב - כל האתרים זהים באופן פעולתם (עד שלב מסוים). ולכן הארכיטקטורות האפשריות כבר ידועות מראש. מה שאפשר להמליץ בעולם הווב, זה ללמוד לעבוד עם הארכיטקטורות האלה והשאלה שלך תיענה בעצמה.